home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d13 / ptv2n1.arc / TYPESALL.H < prev    next >
C/C++ Source or Header  |  1991-03-26  |  2KB  |  105 lines

  1. #ifndef __TYPES_H
  2. #define __TYPES_H
  3.  
  4. enum datatype{EMPTY,
  5.                   INT,LONG,FLOAT,DOUBLE,LDOUBLE,
  6.                   STRING,
  7.                   DERIVED};
  8. class value{
  9.   public:
  10.     char* namptr;
  11.     value();    value(char* namestr);            //constructor
  12.     virtual ~value();                                //destructor
  13.     //return characteristics
  14.     virtual const char* name(){return namptr;}
  15.     virtual int valid();
  16.     virtual datatype type(); virtual const char* typename();
  17.     //return value in different forms
  18.     virtual int asint();
  19.     virtual long aslong();
  20.     virtual float asfloat();
  21.     virtual double asdouble();
  22.     virtual long double asldouble();
  23.     virtual const char* asstring();};
  24.  
  25. class ival:public value{
  26.  protected:
  27.     int data;    
  28.  public:
  29.     ival(char* namestr, int val);
  30.     datatype type(); const char* typename();
  31.     int asint();
  32.     long aslong();
  33.     float asfloat();
  34.     double asdouble();
  35.     long double asldouble();
  36.     const char* asstring();};
  37.  
  38. class lval:public value{
  39.  protected:
  40.     long data;    
  41.  public:
  42.     lval(char* namestr, long val);
  43.     datatype type(); const char* typename();
  44.     int asint();
  45.     long aslong();
  46.     float asfloat();
  47.     double asdouble();
  48.     long double asldouble();
  49.     const char* asstring();};
  50.  
  51. class fval:public value{
  52.  protected:
  53.     float data;    
  54.  public:
  55.     fval(char* namestr, float val);
  56.     datatype type(); const char* typename();
  57.     int asint();
  58.     long aslong();
  59.     float asfloat();
  60.     double asdouble();
  61.     long double asldouble();
  62.     const char* asstring();};
  63.  
  64. class dval:public value{
  65.  protected:
  66.     double data;    
  67.  public:
  68.     dval(char* namestr, double val);
  69.     datatype type(); const char* typename();
  70.     int asint();
  71.     long aslong();
  72.     float asfloat();
  73.     double asdouble();
  74.     long double asldouble();
  75.     const char* asstring();};
  76.  
  77. class ldval:public value{
  78.  protected:
  79.     long double data;    
  80.  public:
  81.     ldval(char* namestr, long double val);
  82.     datatype type(); const char* typename();
  83.     int asint();
  84.     long aslong();
  85.     float asfloat();
  86.     double asdouble();
  87.     long double asldouble();
  88.     const char* asstring();};
  89.  
  90. class sval:public value{
  91.  protected:
  92.     char* data;
  93.  public:
  94.     sval(char* namestr, char* val);
  95.     ~sval(); //supplemental destructor
  96.     datatype type(); const char* typename();
  97.     int asint();
  98.     long aslong();
  99.     float asfloat();
  100.     double asdouble();
  101.     long double asldouble();
  102.     const char* asstring();};
  103.  
  104. #endif
  105.